package com.sky.vo;
/**
 * 1.当前模块名：sky-pojo
 *   模块作用：存放视图对象(Value Object)，用于Controller层返回给前端的结构化数据
 * 2.当前包名：com.sky.vo
 *   包作用：封装Controller层返回的视图数据模型（Value Object）
 * 3.当前类名：OrderSubmitVO
 *   类作用：订单提交响应视图对象，包含订单核心标识信息
 */
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * OrderSubmitVO：订单提交响应视图对象
 * 知识点说明：
 * 1. 订单标识返回：提供订单ID和订单号双重标识，支持不同场景查询
 * 2. 金融精度保障：BigDecimal类型确保金额精确展示
 * 3. 时间格式化：LocalDateTime类型需前端格式化为易读形式
 * 4. 最小化返回：仅包含核心字段（避免敏感信息泄露）
 * 5. 支付引导：前端需根据此信息引导用户进入支付流程
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderSubmitVO implements Serializable {
    //订单id
    private Long id;//主键标识 - 用于后续订单查询和支付操作
    //订单号
    private String orderNumber;//业务订单号 - 用于展示和用户查询（格式：日期+随机数）
    //订单金额
    private BigDecimal orderAmount;//订单总金额 - 包含商品金额+配送费+包装费等
    //下单时间
    private LocalDateTime orderTime;//订单创建时间 - 精确到毫秒级（用于订单时效控制）
}
